﻿using MiniErp.Entity.DataStreams.DOs.Notice;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MiniErp.Entity.DataStreams.DOs
{
    /// <summary>
    /// 岗位实体类(实际上就是权限中的角色，一个角色管控多个用户（这里是一对多关系，因为一个用户只能一个岗位不允许兼职），
    /// 对应多个权限（这里是多对多关系一个角色可以有多个权限，一个权限也能对应多个角色）)
    /// </summary>
    [Table("Jobs")]
    public class Jobs : BaseEntity
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [ConcurrencyCheck]
        public int JobsId { get; set; }
        /// <summary>
        /// 岗位名称
        /// </summary>
        [MaxLength(18, ErrorMessage = "岗位名称长度不能大于18个字符")]
        [Required]
        public string JobsName { get; set; }
        /// <summary>
        /// 岗位描述
        /// </summary>
        public string JobsDescribe { get; set; }
        #region 导航属性
        /// <summary>
        /// 部门编号
        /// </summary>
        public int DepartmentId { get; set; }
        /// <summary>
        /// 岗位所属部门信息
        /// </summary>
        public virtual Department Department { get; set; }

        public virtual List<UserInfo> UserInfos { get; set; }
        /// <summary>
        /// 本岗位可操作系统集合（以及对应权限）
        /// </summary>
        public virtual List<JobsSystemsRights> JobsSystemsRights { get; set; }

        public virtual List<JobsNotices> JobsNotices { get; set; }
        #endregion
    }
}
